256. 取得request的header
WHY
這幾天在GKE幫人架srs origin+edge +zlm ,
然後到有沒有來源IP的header可供使用,
我記得有,但忘記名稱,
現在只有兩條路 ,一條是自己寫個後端回傳header的服務。
另一個就是找別人寫好的,還好有找到(我就記得我看過),
不然真的要自己寫了。
Solution
有請, Httpbin ,
要參考用哪些path的話,可以先到官方文件看一下。
我就直接掛載成deploy和service了。
apiVersion: v1
kind: Namespace
metadata:
name: xff
labels:
istio-injection: enabled
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpbin
namespace: xff
labels:
group: srs
app: httpbin
spec:
replicas: 1
revisionHistoryLimit: 5
progressDeadlineSeconds: 30
selector:
matchLabels:
group: srs
app: httpbin
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
group: srs
app: httpbin
spec:
containers:
- name: srs
image: kennethreitz/httpbin
imagePullPolicy: IfNotPresent # IfNotPresent, Always, Never
ports:
- name: http-web
containerPort: 80
protocol: TCP
dnsPolicy: ClusterFirst
restartPolicy: Always
terminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:
name: httpbin
namespace: xff
spec:
type: LoadBalancer
selector:
group: srs
app: httpbin
ports:
- name: http-web
protocol: TCP
port: 80
targetPort: 80
- name: https
protocol: TCP
port: 443
targetPort: 80
然後,cloudflare掛ip,開啟proxy。
用自己的電腦呼叫自己設定的domain。
curl -X Get https://video-httpbin.abc.com/get
這樣就看得到headers裡面的 Cf-Connecting-Ip
就是來源IP。